'''
filter(函数名,列表) 将列表中的每个元素，作为函数的参数进行筛选，满足条件，存储到一个新列表中，不满足条件的，排除
    函数：参数为列表的元素 返回值为布尔值
    列表：也可以是元组，集合
    filter()方法的返回值可以强转为 list()  set() tuple()
'''
# 将列表中的回文筛选出来
lst = [232,"456","abcba","dfgdgfd",89798,243986,"ersjf"]
"将所有的元素转变成字符串 str()"
a = filter(lambda x:str(x) == str(x)[::-1],lst)
print(tuple(a))

"字符串长度小于5过滤掉,数字的位数也要大于5位"
b = filter(lambda x:len(str(x))>=5,lst)
print(list(b))

"字符串长度小于5过滤掉,过滤掉数字"
def filterNum(x):
    if type(x) == str:
        if len(x) >= 5:
            return True

    else:
        return  False

c = filter(filterNum,lst)
print(list(c))

'''
sorted(序列) 排序
'''
names =["lily","lucy11","jack1","anby","tom"]
newnames = sorted(names,reverse=True) # 降序
newnames1 = sorted(names) # 升序
print(newnames)
print(newnames1)

# 通过字符串的长度排序
newnames2 = sorted(names,key=lambda x:len(x))
print(newnames2)
